Simulation of the software development process: an approximation using System Dynamics and the Larman Method
Abstract
The implementation of any software development process involves the consumption of critical resources. Software engineers cannot experiment with different development processes before starting them in real projects, due to the time that would entail and the amount of elements that are involved, so it is vital to have tools that allow the pre-visualization of the results of executing the software development process and how the environmental variables affect it, thus being able to anticipate under what conditions the software development process will be deployed. This paper presents the modelling and simulation of a software development process using System Dynamics (SD), which allows the graphical representation of the elements intervening in the software process, and the incorporation of as many relevant elements as possible. As a software costs estimation reference, the COCOMO estimation model was used; which beyond being reliable has a theoretical-practical foundation. As an ideal, and real, software process system, the Craig Larman Software Process model was chosen, also known as the Larman Method. The simulation model developed here, allows one to make some initial estimation of the software process and its elements’ behavior in the course of the simulation time. This is possible thanks to the observation and study of the system’s state variables, empowering one to discern about the effect of changes in the parameters on the general process, hence, carrying out relevant and interesting scenario studies. This model becomes a tool for supporting Software Project Management teams and enterprises whose business care on Technological Projects Management.
Downloads
References
W. D. Yu, “A Modeling Approach to Software Cost Estimation,” IEEE J. Sel. Areas Commun., vol. 8, pp. 309–314, 1990.
C. Smith, “Improving Service While Controlling Costs,” IEEE Softw., vol. March, pp. 95–96, 1991.
C. Alejandro and M. Ruiz, “Coverage of ISO/IEC 12207 Software Lifecycle Process by a Simulation-Based Serious Game,” in SPICE 2016: Software Process Improvement and Capability Determination, 2016, pp. 56–70, doi: https://doi.org/10.1007/978-3-319-38980-6_5.
M. I. Kellner, R. J. Madachy, and D. M. Raffo, “Software process simulation modeling: Why? What? How?,” J. Syst. Softw., vol. 46, no. 2–3, pp. 91–105, 1999, doi: 10.1016/S0164-1212(99)00003-5.
S. T. Acuña and M. I. Sánchez-Segura, New Trends in Software Process Modeling. Singapore: World Scientific Publishing Co. Pte. Ltd., 2006.
A. Greasley, Simulation modelling for business. Routledge, 2017.
M. I. Lunesu, J. Münch, M. Marchesi, and M. Kuhrmann, “Using simulation for understanding and reproducing distributed software development processes in the cloud,” Inf. Softw. Technol., vol. 103, no. July, pp. 226–238, 2018, doi: 10.1016/j.infsof.2018.07.004.
G. L. Dugarte-Peña, “Modelado y Simulación de un Proceso de Desarrollo de Software dirigido por el Método de Craig Larman: Una aplicación de la dinámica de sistemas. (Modelling and Simulation of a Craig Larman Methods’ Software Development Process: A System Dynamics Approach,” Universidad Carlos III de Madrid, 2015.
J. A. García-García, J. G. Enríquez, and F. J. Domínguez-Mayo, “Characterizing and evaluating the quality of software process modeling language: Comparison of ten representative model-based languages,” Comput. Stand. Interfaces, vol. 63, no. October 2018, pp. 52–66, 2019, doi: 10.1016/j.csi.2018.11.008.
R. Vicente, “Modelamiento semántico con Dinámica de Sistemas en el proceso de desarrollo de software,” Iber. J. Inf. Syst. Technol., no. 10, pp. 19–33, Dec. 2012, doi: 10.4304/risti.10.19-34.
S. Robertson, “Learning from Other Disciplines,” 2005.
I. Jacobson, G. Booch, and J. E. Rumbaugh, The unified software development process. Boston, MA: Addison-Wesley Longman Publishing Co., Inc., 1999.
C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd ed. Prentice Hall, 2004.
G.-L. Dugarte-Peña, “Software Engineering under the prism of System Dynamics,” in XXIII Jornadas. Internacionales de Ingeniería de Sistemas. Universidad Católica de Santa María., 2016.
G. H. Travassos and M. Barros, “Contributions of In Virtuo and In Silico Experimentes for the Future of Empirical Studies in Software Engineering,” 2nd Work. Work. Ser. Empir. Softw. Eng. Futur. Empir. Stud. Softw. Eng., no. January, pp. 1–14, 2003.
Ventana Systems, “VENSIM.” Ventana Systems, 2011.
J. M. García, Teoría y ejercicios prácticos de Dinámica de Sistemas. Independently Published, 2018.
USC COCOMO II: User´s manual. Center for Software Engineering, USC, 2003.
B. Boehm, “COCOMO II Model Definition Manual,” vol. 87, no. 5 Suppl, p. i, 2012, doi: 10.4269/ajtmh.2012.875suppack.
J. Sterman, Business Dynamics: Systems Thinking and Modeling for a Complex World. USA: McGraw-Hill, 2000.
B. B. Nicolau De França and G. Horta Travassos, “Reporting guidelines for simulation-based studies in software engineering,” IET Semin. Dig., vol. 2012, no. 1, pp. 156–160, 2012, doi: 10.1049/ic.2012.0019.
H. Zhang, B. A. Kitchenham, and D. Pfahl, “Reflections on 10 Years of Software Process Simulation Modeling: A Systematic Review,” in Making Globally Distributed Software Development a Success Story, Q. Wang, D. Pfahl, and D. M. Raffo, Eds. Springer, 2008, pp. 345–356.
H. Zhang, B. Kitchenham, and D. Pfahl, “Software Process Simulation Modeling: Facts, Trends and Directions,” 2008 15th Asia-Pacific Softw. Eng. Conf., pp. 59–66, 2008, doi: 10.1109/APSEC.2008.50.
X. Ferré-Grau and M.-I. Sanchez-Segura, “Desarrollo Orientado a Objetos con UML,” pp. 1–38, 2013.
M.-I. Sanchez-Segura, A. Jordan, F. Medina-Dominguez, and G.-L. Dugarte-Peña, “Software Engineers must speak the Systemic Intangible Process Assets Language,” 2016.
Copyright (c) 2020 Innovation and Software
This work is licensed under a Creative Commons Attribution 4.0 International License.
The authors exclusively grant the right to publish their article to the Innovation and Software Journal, which may formally edit or modify the approved text to comply with their own editorial standards and with universal grammatical standards, prior to publication; Likewise, our journal may translate the approved manuscripts into as many languages as it deems necessary and disseminates them in several countries, always giving public recognition to the author or authors of the research.